// class Task {
//   constructor() {
//     this.tasks = [];
//   }

//   add(fn) {
//     this.tasks.push(fn);
//     return this;
//   }

//   wait(time) {
//     this.tasks.push(
//       () =>
//         new Promise((resolve, reject) => {
//           setTimeout(() => {
//             resolve();
//           }, time);
//         })
//     );
//     return this;
//   }

//   async start() {
//     // this.tasks.forEach((fn) => {
//     //   fn();
//     // });

//     for (let i = 0; i < this.tasks.length; i++) {
//       //   console.log(this.tasks[i]);
//       await this.tasks[i]();
//     }

//     return this;
//   }
// }

// let task = new Task();
// task
//   .add(() => {
//     console.log("task1");
//   })
//   .wait(2000)
//   .add(() => {
//     console.log("task2");
//   })
//   .start();

// // task()
// //   .add(() => {
// //     console.log("task1");
// //   })
// //   .wait(2000)
// //   .add(() => {
// //     console.log("task2");
// //   })
// //   .start();
// console.log("hello world".match(/\B/));
// let obj = {
//   a: 1,
//   fun: function (bb) {
//     let b = bb || this.a;
//     return function (c) {
//       console.log(this.a, b, c);
//       console.log(this.a + b + c);
//     };
//   },
// };
// obj.fun(2) .call({ a: 3 }, 1);
// obj.fun.call({ a: 3 })(1);
// let a = { aa: 1 };
// let b = a;
// b.aa = 2;
// console.log(a.aa);
// console.log(b.aa);

// let arr = [1, 4, 2];

// arr.sort((a, b) => a - b);
// console.log(arr);
